package com.arraymasterx.config;

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;

@Data
@Configuration
@ConfigurationProperties(prefix = "algorithm")
public class AlgorithmConfig {
    private Search search;
    private Sort sort;
    private Matrix matrix;
    private Performance performance;

    @Data
    public static class Search {
        private int maxArraySize;
    }

    @Data
    public static class Sort {
        private int maxElements;
        private String defaultAlgorithm;
    }

    @Data
    public static class Matrix {
        private int maxDimension;
        private int maxInverseDimension;
        private int parallelThreshold;
    }

    @Data
    public static class Performance {
        private long warningThresholdMs;
        private boolean logAll;
    }
}